传送门
巨佬zyd出的一道题
裴蜀定理:对于正整数,方程有解的充分必要条件为
我们设,,,
首先证明充分条件:
若则为整数,
原方程两边同时除以,方程化为:,即,
显然两两互质,根据extgcd,我们知道这个方程一定有整数解。
充分性得证
再证明必要条件:
用反证法
若则不为整数,
原方程两边同时除以,方程化为:,
等式左边为整数,右边不为整数,所以无解。
必要性得证
回到本题,发现这是一种裴蜀定理推广到个数的情况
即有解的充分必要条件为
又因为为正整数,所以
代码:
// luogu-judger-enable-o2
#include <bits/stdc++.h>
using namespace std;
inline int read(){//这个read自动忽略负数
int x=0;
char ch=getchar();
while (ch<'0'||ch>'9'){
ch=getchar();
}
while (ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+(ch^'0');
ch=getchar();
}
return x;
}
int gcd(int jzm,int xjp){
return jzm%xjp==0?xjp:gcd(xjp,jzm%xjp);
}
int main(){
int n=read();
int ans=read();
for (register int i=2;i<=n;++i){
ans=gcd(ans,read());
}
printf("%d\n",ans);
}